#include "device.h"

void Relay_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStruct = {0};

    __HAL_RCC_GPIOA_CLK_ENABLE();
	__HAL_RCC_GPIOB_CLK_ENABLE();
	__HAL_RCC_GPIOC_CLK_ENABLE();

    GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_OD;
    GPIO_InitStruct.Pull  = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    
    GPIO_InitStruct.Pin = RELAY1_PIN;
    HAL_GPIO_Init(RELAY1_PORT, &GPIO_InitStruct);    
    
    GPIO_InitStruct.Pin = RELAY2_PIN;
    HAL_GPIO_Init(RELAY2_PORT, &GPIO_InitStruct);
		
	GPIO_InitStruct.Pin = RELAY3_PIN;
    HAL_GPIO_Init(RELAY3_PORT, &GPIO_InitStruct);
		
	GPIO_InitStruct.Pin = RELAY4_PIN;
    HAL_GPIO_Init(RELAY4_PORT, &GPIO_InitStruct);
		
	GPIO_InitStruct.Pin = RELAY5_PIN;
    HAL_GPIO_Init(RELAY5_PORT, &GPIO_InitStruct);
		
	GPIO_InitStruct.Pin = RELAY6_PIN;
    HAL_GPIO_Init(RELAY6_PORT, &GPIO_InitStruct);
		
	GPIO_InitStruct.Pin = RELAY7_PIN;
    HAL_GPIO_Init(RELAY7_PORT, &GPIO_InitStruct);
		
	GPIO_InitStruct.Pin = RELAY8_PIN;
    HAL_GPIO_Init(RELAY8_PORT, &GPIO_InitStruct);
		
	GPIO_InitStruct.Pin = RELAY9_PIN;
    HAL_GPIO_Init(RELAY9_PORT, &GPIO_InitStruct);
		
	GPIO_InitStruct.Pin = RELAY10_PIN;
    HAL_GPIO_Init(RELAY10_PORT, &GPIO_InitStruct);
		

	HAL_GPIO_WritePin(RELAY1_PORT, RELAY1_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY2_PORT, RELAY2_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY3_PORT, RELAY3_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY4_PORT, RELAY4_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY5_PORT, RELAY5_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY6_PORT, RELAY6_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY7_PORT, RELAY7_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY8_PORT, RELAY8_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY9_PORT, RELAY9_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY10_PORT, RELAY10_PIN, GPIO_PIN_SET);

}
void Stretch_common(void)
{
	HAL_GPIO_WritePin(RELAY1_PORT, RELAY1_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY2_PORT, RELAY2_PIN, GPIO_PIN_SET);
}
void Stretch_forward(void)//前伸
{
	HAL_GPIO_WritePin(RELAY1_PORT, RELAY1_PIN, GPIO_PIN_RESET);//前伸
	HAL_GPIO_WritePin(RELAY2_PORT, RELAY2_PIN, GPIO_PIN_SET);
}
void Stretch_back(void)//缩回
{
	HAL_GPIO_WritePin(RELAY1_PORT, RELAY1_PIN, GPIO_PIN_SET);
	HAL_GPIO_WritePin(RELAY2_PORT, RELAY2_PIN, GPIO_PIN_RESET);//后缩
}
void Clamp_common(void)
{
	HAL_GPIO_WritePin(RELAY3_PORT, RELAY3_PIN, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(RELAY4_PORT, RELAY4_PIN, GPIO_PIN_SET);
}
void Clamp_hold(void)//夹紧
{
	HAL_GPIO_WritePin(RELAY3_PORT, RELAY3_PIN, GPIO_PIN_RESET);//夹取
//	HAL_GPIO_WritePin(RELAY4_PORT, RELAY4_PIN, GPIO_PIN_SET);
}
void Clamp_release(void)//松开
{
	HAL_GPIO_WritePin(RELAY3_PORT, RELAY3_PIN, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(RELAY4_PORT, RELAY4_PIN, GPIO_PIN_RESET);
}
void Rescure_common(void)
{
//	HAL_GPIO_WritePin(RELAY3_PORT, RELAY3_PIN, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(RELAY4_PORT, RELAY4_PIN, GPIO_PIN_SET);
}
void Rescure_hold(void)//救援夹取
{
	HAL_GPIO_WritePin(RELAY7_PORT, RELAY7_PIN, GPIO_PIN_RESET);
}
void Rescure_release(void)//救援松开
{
	HAL_GPIO_WritePin(RELAY7_PORT, RELAY7_PIN, GPIO_PIN_SET);
}

void Crescure_common(void)
{
//	HAL_GPIO_WritePin(RELAY5_PORT, RELAY5_PIN, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(RELAY6_PORT, RELAY6_PIN, GPIO_PIN_SET);
}
void Crescure_forward(void)//刷卡救援伸出
{
	HAL_GPIO_WritePin(RELAY5_PORT, RELAY5_PIN, GPIO_PIN_RESET);
}
void Crescure_back(void)//刷卡救援收回
{
	HAL_GPIO_WritePin(RELAY5_PORT, RELAY5_PIN, GPIO_PIN_SET);
}

//void Reset_push(void)//关气
//{
//	HAL_GPIO_WritePin(RELAY1_PORT, RELAY1_PIN, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(RELAY2_PORT, RELAY2_PIN, GPIO_PIN_SET);
//}
//void Reset_hold(void)
//{
	//HAL_GPIO_WritePin(RELAY3_PORT, RELAY3_PIN, GPIO_PIN_SET);
	//HAL_GPIO_WritePin(RELAY4_PORT, RELAY4_PIN, GPIO_PIN_SET);
//}
//void Throw_out(void) //弹射扔弹药箱
//{
//	HAL_GPIO_WritePin(RELAY5_PORT, RELAY5_PIN, GPIO_PIN_RESET);
//	HAL_GPIO_WritePin(RELAY6_PORT, RELAY6_PIN, GPIO_PIN_SET);
//}
//void Throw_in(void)
//{
//	HAL_GPIO_WritePin(RELAY5_PORT, RELAY5_PIN, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(RELAY6_PORT, RELAY6_PIN, GPIO_PIN_SET);
//}
//void Reset_throw(void)
//{
	//HAL_GPIO_WritePin(RELAY5_PORT, RELAY5_PIN, GPIO_PIN_SET);
	//HAL_GPIO_WritePin(RELAY6_PORT, RELAY6_PIN, GPIO_PIN_SET);
//}
//void Rescue(void)//救援伸出
//{
//	HAL_GPIO_WritePin(RELAY7_PORT, RELAY7_PIN, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(RELAY8_PORT, RELAY8_PIN, GPIO_PIN_RESET);
//}
//void Unrescue(void)//救援收回
//{
//	HAL_GPIO_WritePin(RELAY7_PORT, RELAY7_PIN, GPIO_PIN_RESET);
//	HAL_GPIO_WritePin(RELAY8_PORT, RELAY8_PIN, GPIO_PIN_SET);
//}
//void Reset_rescue(void)
//{
//	HAL_GPIO_WritePin(RELAY7_PORT, RELAY7_PIN, GPIO_PIN_SET);
//	HAL_GPIO_WritePin(RELAY8_PORT, RELAY8_PIN, GPIO_PIN_SET);
//}
//void Electromagnet_on(void)//电磁铁
//{
//	HAL_GPIO_WritePin(RELAY9_PORT, RELAY9_PIN, GPIO_PIN_RESET);
//}
//void Electromagnet_off(void) 
//{
//	HAL_GPIO_WritePin(RELAY9_PORT, RELAY9_PIN, GPIO_PIN_SET);
//}
